Deny #[cfg_attr(pred, type_const)]#151289
Closed
mu001999 wants to merge 1 commit intorust-lang:mainfrom
Closed
Conversation
Contributor
|
Whatever |
Member
|
Yeah I think this should get replaced by actual syntax. Having an attribute which doesn't actually work like other attributes is just wrong:tm: We should remove @mu001999 if you reach out on zulip I can talk a bit more about this. Thanks for the PR though :3 |
Contributor
|
☔ The latest upstream changes made this pull request unmergeable. Please resolve the merge conflicts. |
rust-bors bot
pushed a commit
that referenced
this pull request
Feb 9, 2026
Update mgca to use `type const` syntax instead of the `#[type_const]` attribute. This PR changes the `#[type_const]` attribute to the `type const` syntax for #132980. This will fixes #151273 and similar issues, since we need to check `type const` of items before expansion. The move to add a syntax was mentioned here: #151289 (comment) The first part of this PR adds support by allowing `type const <IDENT>: <TYPE> { = <EXPR> };` syntax in `rustc_parse/src/parser/item.rs`. The next part since the AST item does not contain enough information to determine if we have a `type const` was rework `ConstItemRhs` into `ConstItemRhsKind` to store the information since we no longer have the attribute acting as a source of extra data/metadata. The hir node `ConstItemRhsKind` current shape mostly works, except in the case of `TraitItemKind` where it is an option. I initially went about giving `hir::ConstItemRhsKind` a similar form the AST, but it touches a lot more lines of code and files so because of that, the less invasive option was to add a simple boolean flag to `TraitItemKind`. The forth part of this PR includes adding a query I called `is_rhs_type_const` so that we can handle both local and foreign def_ids. The fifth aspect of the PR is adding a `mgca_type_const_syntax` feature gate that is checked before expansion. The standard mgca feature gate is ran after expansion. This feature gate allows for conditional compilation (e.g #[cfg(..)]) of the `type const` syntax in nightly without `min_generic_const_args` being enabled. The last bit is updating all the the tests that used the `#[type_const]` attribute to use the new syntax that failed because of the changes. This is the bulk of touched/edited files in the PR. r? @BoxyUwU @rustbot label +F-associated_const_equality +F-min_generic_const_args
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #151273
As #151273 (comment) shows, I think emitting error when meeting
#[cfg_attr(pred, type_const)]is good enough for now.r? @BoxyUwU